home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / A1_PPE'S.ZIP / WRITEUNR.ZIP / WRITE.PPE (.txt) < prev   
PCBoard Programming Language Executable  |  1994-04-13  |  19KB  |  621 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 2.OO (plain) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Integer  INTEGER002
  20.     Integer  INTEGER003
  21.     Integer  INTEGER004
  22.     Integer  TINTEGER005(24,3)
  23.     Integer  INTEGER006
  24.     String   STRING009
  25.     String   STRING010
  26.     String   STRING011
  27.     String   STRING012
  28.     String   TSTRING013(24)
  29.     String   TSTRING014(24)
  30.     String   TSTRING015(24)
  31.     String   STRING016
  32.     String   STRING017
  33.     String   STRING018
  34.     String   TSTRING019(16)
  35.  
  36. ;------------------------------------------------------------------------------
  37.  
  38.     STRING012 = ""
  39.     TINTEGER005(0, 0) = 50
  40.     TINTEGER005(0, 1) = 22
  41.     TINTEGER005(0, 2) = 6
  42.     TINTEGER005(1, 0) = 50
  43.     TINTEGER005(1, 1) = 22
  44.     TINTEGER005(1, 2) = 7
  45.     TINTEGER005(2, 0) = 25
  46.     TINTEGER005(2, 1) = 22
  47.     TINTEGER005(2, 2) = 8
  48.     TINTEGER005(3, 0) = 10
  49.     TINTEGER005(3, 1) = 22
  50.     TINTEGER005(3, 2) = 9
  51.     TINTEGER005(4, 0) = 10
  52.     TINTEGER005(4, 1) = 22
  53.     TINTEGER005(4, 2) = 10
  54.     TINTEGER005(5, 0) = 15
  55.     TINTEGER005(5, 1) = 45
  56.     TINTEGER005(5, 2) = 10
  57.     TINTEGER005(6, 0) = 3
  58.     TINTEGER005(6, 1) = 22
  59.     TINTEGER005(6, 2) = 12
  60.     TINTEGER005(7, 0) = 3
  61.     TINTEGER005(7, 1) = 27
  62.     TINTEGER005(7, 2) = 12
  63.     TINTEGER005(8, 0) = 4
  64.     TINTEGER005(8, 1) = 32
  65.     TINTEGER005(8, 2) = 12
  66.     TINTEGER005(9, 0) = 3
  67.     TINTEGER005(9, 1) = 22
  68.     TINTEGER005(9, 2) = 13
  69.     TINTEGER005(10, 0) = 3
  70.     TINTEGER005(10, 1) = 27
  71.     TINTEGER005(10, 2) = 13
  72.     TINTEGER005(11, 0) = 4
  73.     TINTEGER005(11, 1) = 32
  74.     TINTEGER005(11, 2) = 13
  75.     TINTEGER005(12, 0) = 25
  76.     TINTEGER005(12, 1) = 51
  77.     TINTEGER005(12, 2) = 13
  78.     TINTEGER005(13, 0) = 12
  79.     TINTEGER005(13, 1) = 16
  80.     TINTEGER005(13, 2) = 15
  81.     TINTEGER005(14, 0) = 25
  82.     TINTEGER005(14, 1) = 51
  83.     TINTEGER005(14, 2) = 15
  84.     TINTEGER005(15, 0) = 1
  85.     TINTEGER005(15, 1) = 19
  86.     TINTEGER005(15, 2) = 17
  87.     TINTEGER005(16, 0) = 1
  88.     TINTEGER005(16, 1) = 51
  89.     TINTEGER005(16, 2) = 17
  90.     TINTEGER005(17, 0) = 1
  91.     TINTEGER005(17, 1) = 76
  92.     TINTEGER005(17, 2) = 17
  93.     TINTEGER005(18, 0) = 1
  94.     TINTEGER005(18, 1) = 24
  95.     TINTEGER005(18, 2) = 19
  96.     TINTEGER005(19, 0) = 3
  97.     TINTEGER005(19, 1) = 42
  98.     TINTEGER005(19, 2) = 19
  99.     TINTEGER005(20, 0) = 1
  100.     TINTEGER005(20, 1) = 75
  101.     TINTEGER005(20, 2) = 19
  102.     TINTEGER005(21, 0) = 1
  103.     TINTEGER005(21, 1) = 24
  104.     TINTEGER005(21, 2) = 21
  105.     TINTEGER005(22, 0) = 1
  106.     TINTEGER005(22, 1) = 45
  107.     TINTEGER005(22, 2) = 21
  108.     TINTEGER005(23, 0) = 1
  109.     TINTEGER005(23, 1) = 75
  110.     TINTEGER005(23, 2) = 21
  111.     TSTRING013(0) = Mask_AlNum() + " "
  112.     TSTRING013(1) = Mask_AlNum() + " "
  113.     TSTRING013(2) = Mask_Alpha() + " "
  114.     TSTRING013(3) = Mask_Alpha() + " "
  115.     TSTRING013(4) = Mask_AlNum()
  116.     TSTRING013(5) = Mask_Alpha() + " "
  117.     TSTRING013(6) = Mask_Num()
  118.     TSTRING013(7) = Mask_Num()
  119.     TSTRING013(8) = Mask_Num()
  120.     TSTRING013(9) = Mask_Num()
  121.     TSTRING013(10) = Mask_Num()
  122.     TSTRING013(11) = Mask_Num()
  123.     TSTRING013(12) = Mask_Ascii()
  124.     TSTRING013(13) = Mask_Pwd()
  125.     TSTRING013(14) = Mask_Alpha() + " "
  126.     TSTRING013(15) = "YNyn"
  127.     TSTRING013(17) = "YyNn"
  128.     TSTRING013(18) = "YyNn"
  129.     TSTRING013(19) = Mask_Num()
  130.     TSTRING013(20) = "YyNn"
  131.     TSTRING013(21) = "YyNn"
  132.     TSTRING013(22) = "YyNn"
  133.     TSTRING013(23) = "YyNn"
  134.     TSTRING019(0) = "0"
  135.     TSTRING019(1) = "1"
  136.     TSTRING019(2) = "2"
  137.     TSTRING019(3) = "3"
  138.     TSTRING019(4) = "4"
  139.     TSTRING019(5) = "5"
  140.     TSTRING019(6) = "6"
  141.     TSTRING019(7) = "7"
  142.     TSTRING019(8) = "8"
  143.     TSTRING019(9) = "9"
  144.     TSTRING019(10) = "A"
  145.     TSTRING019(11) = "B"
  146.     TSTRING019(12) = "C"
  147.     TSTRING019(13) = "D"
  148.     TSTRING019(14) = "E"
  149.     TSTRING019(15) = "F"
  150.     INTEGER002 = 23
  151.     INTEGER003 = 0
  152.     INTEGER004 = 0
  153.     GetUser
  154.     Log "WRITE PPE: entered", 0
  155.     FOpen 1, PPEPath() + "WRITE.CFG", 0, 0
  156.     If (Ferr(1)) Then
  157.         Print "@X02WRITE: could not open WRITE.CFG, exiting..."
  158.         Log "WRITE: could not open WRITE.CFG", 0
  159.     Else
  160.         FGet 1, STRING009
  161.         FGet 1, STRING010
  162.         FGet 1, STRING011
  163.         STRING009 = Upper(STRING009)
  164.         STRING010 = Upper(STRING010)
  165.         STRING011 = Upper(STRING011)
  166.         If (STRING009 == "RANDOM") STRING009 = TSTRING019(Random(15))
  167.         If (STRING010 == "RANDOM") Then
  168.             INTEGER006 = Random(7)
  169.             STRING010 = TSTRING019(INTEGER006)
  170.             STRING011 = TSTRING019(INTEGER006 + 8)
  171.         Endif
  172.         For INTEGER006 = 0 To 23
  173.             FGet 1, TSTRING014(INTEGER006)
  174.         Next
  175.         FGet 1, STRING018
  176.         TSTRING013(16) = STRING018
  177.         If (Ferr(1)) Then
  178.             Print "@X02WRITE: error reading WRITE.CFG, exiting..."
  179.             Log "WRITE: error reading WRITE.CFG, exiting...", 0
  180.         Else
  181.             :LABEL001
  182.             Gosub LABEL002
  183.             Gosub LABEL003
  184.             Gosub LABEL004
  185.             While (INTEGER003 <> 1) Do
  186.                 STRING016 = ""
  187.                 STRING016 = Inkey()
  188.                 STRING016 = Upper(STRING016)
  189.                 If ((((Left(STRING016, 4) == "DOWN") || (Left(STRING016, 5) == "RIGHT")) || (STRING016 == "6")) || (STRING016 == "2")) Then
  190.                     Gosub LABEL005
  191.                     Inc INTEGER004
  192.                     If (TSTRING014(INTEGER004) == "N") Inc INTEGER004
  193.                     If (INTEGER004 == 7) INTEGER004 = 9
  194.                     If (INTEGER004 == 10) INTEGER004 = 12
  195.                     If (TSTRING014(INTEGER004) == "N") Inc INTEGER004
  196.                     If (INTEGER004 > INTEGER002) INTEGER004 = 0
  197.                     Gosub LABEL004
  198.                     Continue
  199.                 Endif
  200.                 If ((((Left(STRING016, 2) == "UP") || (Left(STRING016, 4) == "LEFT")) || (STRING016 == "8")) || (STRING016 == "4")) Then
  201.                     Gosub LABEL005
  202.                     Dec INTEGER004
  203.                     If (TSTRING014(INTEGER004) == "N") Dec INTEGER004
  204.                     If (INTEGER004 == 11) INTEGER004 = 9
  205.                     If (INTEGER004 == 8) INTEGER004 = 6
  206.                     If (TSTRING014(INTEGER004) == "N") Dec INTEGER004
  207.                     If (INTEGER004 < 0) INTEGER004 = INTEGER002
  208.                     Gosub LABEL004
  209.                     Continue
  210.                 Endif
  211.                 If (STRING016 == Chr(13)) Then
  212.                     Gosub LABEL006
  213.                     Gosub LABEL004
  214.                     Continue
  215.                 Endif
  216.                 If (STRING016 == "H") Then
  217.                     DefColor
  218.                     Gosub LABEL008
  219.                     Continue
  220.                 Endif
  221.                 If (STRING016 == "Q") Then
  222.                     INTEGER003 = 1
  223.                     Continue
  224.                 Endif
  225.                 If (STRING016 == "S") Then
  226.                     Gosub LABEL007
  227.                     INTEGER003 = 1
  228.                 Endif
  229.             EndWhile
  230.         Endif
  231.     Endif
  232.     DefColor
  233.     Print "@CLS@@PON@"
  234.     FClose 1
  235.     Log "WRITE PPE: exited", 0
  236.     End
  237.     :LABEL002
  238.     PrintLn "@POFF@@CLS@@X0" + STRING011 + "▐@X" + STRING010 + STRING011 + "┌───────────────────────────────────────────────────────────────────────────@X" + STRING010 + "0┐@X08▌"
  239.     PrintLn "@X0" + STRING011 + "▐@X" + STRING010 + STRING011 + "│  @X" + STRING010 + STRING009 + "WRITE.PPE ■ COPYRIGHT 1994 ■ ROBERT BROWER ■ TOTAL ACCESS (905)568-5294  @X" + STRING010 + "0│@X08▌"
  240.     PrintLn "@X0" + STRING011 + "▐@X" + STRING010 + STRING011 + "└@X" + STRING010 + "0───────────────────────────────────────────────────────────────────────────┘@X08▌"
  241.     PrintLn "@X0" + STRING011 + "▐@X" + STRING010 + STRING011 + "   (@X" + STRING010 + STRING009 + "@X" + STRING010 + STRING011 + ")NEXT (@X" + STRING010 + STRING009 + "@X" + STRING010 + STRING011 + ")PREV (@X" + STRING010 + STRING009 + "S@X" + STRING010 + STRING011 + ")AVE & EXIT (@X" + STRING010 + STRING009 + "Q@X" + STRING010 + STRING011 + ")UIT WITHOUT SAVING (@X" + STRING010 + STRING009 + "ENTER@X" + STRING010 + STRING011 + ")=EDIT (@X" + STRING010 + STRING009 + "H@X" + STRING010 + STRING011 + ")ELP   @X08▌"
  242.     PrintLn "@X0" + STRING011 + "▐@X" + STRING010 + STRING011 + "┌───────────────────────────────────────────────────────────────────────────@X" + STRING010 + "0┐@X08▌"
  243.     PrintLn "@X0" + STRING011 + "▐@X" + STRING010 + STRING011 + "│  @X" + STRING010 + STRING011 + "STREET ADDRESS:  @X0" + STRING011 + "                                                  @X" + STRING010 + STRING011 + "      @X" + STRING010 + "0│@X08▌"
  244.     PrintLn "@X0" + STRING011 + "▐@X" + STRING010 + STRING011 + "│  @X" + STRING010 + STRING011 + "APARTMENT/UNIT:  @X0" + STRING011 + "                                                  @X" + STRING010 + STRING011 + "      @X" + STRING010 + "0│@X08▌"
  245.     PrintLn "@X0" + STRING011 + "▐@X" + STRING010 + STRING011 + "│            @X" + STRING010 + STRING011 + "CITY:  @X0" + STRING011 + "                        @X" + STRING010 + STRING011 + "                                @X" + STRING010 + "0│@X08▌"
  246.     PrintLn "@X0" + STRING011 + "▐@X" + STRING010 + STRING011 + "│  @X" + STRING010 + STRING011 + "STATE/PROVINCE:  @X0" + STRING011 + "          @X" + STRING010 + STRING011 + "                                              @X" + STRING010 + "0│@X08▌"
  247.     PrintLn "@X0" + STRING011 + "▐@X" + STRING010 + STRING011 + "│         @X" + STRING010 + STRING011 + "ZIPCODE:  @X0" + STRING011 + "          @X" + STRING010 + STRING011 + "   @X" + STRING010 + STRING011 + "COUNTRY:  @X0" + STRING011 + "               @X" + STRING010 + STRING011 + "                  @X" + STRING010 + "0│@X08▌"
  248.     PrintLn "@X0" + STRING011 + "▐@X" + STRING010 + STRING011 + "│                                                                           @X" + STRING010 + "0│@X08▌"
  249.     PrintLn "@X0" + STRING011 + "▐@X" + STRING010 + STRING011 + "│    @X" + STRING010 + STRING011 + "DATA PHONE #:  @X0E   @X" + STRING010 + STRING011 + "  @X0E   @X" + STRING010 + STRING011 + "  @X0E    @X" + STRING010 + STRING011 + "                                          @X" + STRING010 + "0│@X08▌"
  250.     PrintLn "@X0" + STRING011 + "▐@X" + STRING010 + STRING011 + "│    @X" + STRING010 + STRING011 + "HOME PHONE #:  @X0E   @X" + STRING010 + STRING011 + "  @X0E   @X" + STRING010 + STRING011 + "  @X0E    @X" + STRING010 + STRING011 + "       @X" + STRING010 + STRING011 + "ALIAS:  @X0E                         @X" + STRING010 + STRING011 + "  @X" + STRING010 + "0│@X08▌"
  251.     PrintLn "@X0" + STRING011 + "▐@X" + STRING010 + STRING011 + "│                                                                           @X" + STRING010 + "0│@X08▌"
  252.     PrintLn "@X0" + STRING011 + "▐@X" + STRING010 + STRING011 + "│  @X" + STRING010 + STRING011 + "PASSWORD:  @X0E            @X" + STRING010 + STRING011 + "   VERIFICATION INFO:  @X0E                         @X" + STRING010 + STRING011 + "  @X" + STRING010 + "0│@X08▌"
  253.     PrintLn "@X0" + STRING011 + "▐@X" + STRING010 + STRING011 + "│                                                                           @X" + STRING010 + "0│@X08▌"
  254.     PrintLn "@X0" + STRING011 + "▐@X" + STRING010 + STRING011 + "│  @X" + STRING010 + STRING011 + "EXPERT MODE:  @X0E @X" + STRING010 + STRING011 + "   DEFAULT TRANSFER PROTOCOL:  @X0E @X" + STRING010 + STRING011 + "   @X" + STRING010 + STRING011 + "FULL SCREEN EDITOR:  @X0E @X" + STRING010 + STRING011 + " @X" + STRING010 + "0│@X08▌"
  255.     PrintLn "@X0" + STRING011 + "▐@X" + STRING010 + STRING011 + "│                                                                           @X" + STRING010 + "0│@X08▌"
  256.     PrintLn "@X0" + STRING011 + "▐@X" + STRING010 + STRING011 + "│  @X" + STRING010 + STRING011 + "MSG CLEAR SCREEN:  @X0E @X" + STRING010 + STRING011 + "   PAGE LENGTH:  @X0E   @X" + STRING010 + STRING011 + "   @X" + STRING010 + STRING011 + "SCROLL MULTI-SCREEN MSGS:  @X0E @X" + STRING010 + STRING011 + "  @X" + STRING010 + "0│@X08▌"
  257.     PrintLn "@X0" + STRING011 + "▐@X" + STRING010 + STRING011 + "│                                                                           @X" + STRING010 + "0│@X08▌"
  258.     PrintLn "@X0" + STRING011 + "▐@X" + STRING010 + STRING011 + "│  @X" + STRING010 + STRING011 + "LONG MSG HEADERS:  @X0E @X" + STRING010 + STRING011 + "   @X" + STRING010 + STRING011 + "EDITOR 79 COLS:  @X0E @X" + STRING010 + STRING011 + "   FULL SCREEN EDIT PROMPT:  @X0E @X" + STRING010 + STRING011 + "  @X" + STRING010 + "0│@X08▌"
  259.     PrintLn "@X0" + STRING011 + "▐@X" + STRING010 + STRING011 + "└@X" + STRING010 + "0───────────────────────────────────────────────────────────────────────────┘@X08▌"
  260.     Return
  261.     :LABEL003
  262.     Color 15
  263.     AnsiPos 22, 6
  264.     Print U_Addr(0)
  265.     TSTRING015(0) = U_Addr(0)
  266.     AnsiPos 22, 7
  267.     Print U_Addr(1)
  268.     TSTRING015(1) = U_Addr(1)
  269.     AnsiPos 22, 8
  270.     Print U_Addr(2)
  271.     TSTRING015(2) = U_Addr(2)
  272.     AnsiPos 22, 9
  273.     Print U_Addr(3)
  274.     TSTRING015(3) = U_Addr(3)
  275.     AnsiPos 22, 10
  276.     Print U_Addr(4)
  277.     TSTRING015(4) = U_Addr(4)
  278.     AnsiPos 45, 10
  279.     Print U_Addr(5)
  280.     TSTRING015(5) = U_Addr(5)
  281.     AnsiPos 32, 12
  282.     STRING016 = Strip(U_BDPhone, "(")
  283.     STRING016 = Strip(STRING016, ")")
  284.     STRING016 = Strip(STRING016, "-")
  285.     STRING016 = Strip(STRING016, " ")
  286.     Print Right(STRING016, 4)
  287.     TSTRING015(8) = Right(STRING016, 4)
  288.     AnsiPos 27, 12
  289.     STRING016 = Mid(STRING016, 1, Len(STRING016) - 4)
  290.     Print Right(STRING016, 3)
  291.     TSTRING015(7) = Right(STRING016, 3)
  292.     AnsiPos 22, 12
  293.     STRING016 = Mid(STRING016, 1, Len(STRING016) - 3)
  294.     Print Right(STRING016, 3)
  295.     TSTRING015(6) = Right(STRING016, 3)
  296.     AnsiPos 32, 13
  297.     STRING016 = Strip(U_HVPhone, "(")
  298.     STRING016 = Strip(STRING016, ")")
  299.     STRING016 = Strip(STRING016, "-")
  300.     STRING016 = Strip(STRING016, " ")
  301.     Print Right(STRING016, 4)
  302.     TSTRING015(11) = Right(STRING016, 4)
  303.     AnsiPos 27, 13
  304.     STRING016 = Mid(STRING016, 1, Len(STRING016) - 4)
  305.     Print Right(STRING016, 3)
  306.     TSTRING015(10) = Right(STRING016, 3)
  307.     AnsiPos 22, 13
  308.     STRING016 = Mid(STRING016, 1, Len(STRING016) - 3)
  309.     Print Right(STRING016, 3)
  310.     TSTRING015(9) = Right(STRING016, 3)
  311.     AnsiPos 51, 13
  312.     Print U_Alias
  313.     TSTRING015(12) = U_Alias
  314.     AnsiPos 16, 15
  315.     Print U_Pwd
  316.     TSTRING015(13) = U_Pwd
  317.     AnsiPos 51, 15
  318.     Print U_Ver
  319.     TSTRING015(14) = U_Ver
  320.     AnsiPos 19, 17
  321.     If (U_Expert == 1) Then
  322.         Print "Y"
  323.         TSTRING015(15) = "Y"
  324.     Else
  325.         Print "N"
  326.         TSTRING015(15) = "N"
  327.     Endif
  328.     AnsiPos 51, 17
  329.     Print U_Trans
  330.     TSTRING015(16) = U_Trans
  331.     AnsiPos 76, 17
  332.     If (U_FSE == 1) Then
  333.         Print "Y"
  334.         TSTRING015(17) = "Y"
  335.     Else
  336.         Print "N"
  337.         TSTRING015(17) = "N"
  338.     Endif
  339.     AnsiPos 24, 19
  340.     If (U_Cls == 1) Then
  341.         Print "Y"
  342.         TSTRING015(18) = "Y"
  343.     Else
  344.         Print "N"
  345.         TSTRING015(18) = "N"
  346.     Endif
  347.     AnsiPos 42, 19
  348.     Print U_PageLen
  349.     TSTRING015(19) = U_PageLen
  350.     AnsiPos 75, 19
  351.     If (U_Scroll == 1) Then
  352.         Print "Y"
  353.         TSTRING015(20) = "Y"
  354.     Else
  355.         Print "N"
  356.         TSTRING015(20) = "N"
  357.     Endif
  358.     AnsiPos 24, 21
  359.     If (U_LongHDR == 1) Then
  360.         Print "Y"
  361.         TSTRING015(21) = "Y"
  362.     Else
  363.         Print "N"
  364.         TSTRING015(21) = "N"
  365.     Endif
  366.     AnsiPos 45, 21
  367.     If (U_Def79 == 1) Then
  368.         Print "Y"
  369.         TSTRING015(22) = "Y"
  370.     Else
  371.         Print "N"
  372.         TSTRING015(22) = "N"
  373.     Endif
  374.     AnsiPos 75, 21
  375.     If (U_FSEP == 1) Then
  376.         Print "Y"
  377.         TSTRING015(23) = "Y"
  378.     Else
  379.         Print "N"
  380.         TSTRING015(23) = "N"
  381.     Endif
  382.     Return
  383.     :LABEL004
  384.     STRING016 = ScrText(TINTEGER005(INTEGER004, 1), TINTEGER005(INTEGER004, 2), TINTEGER005(INTEGER004, 0), 0)
  385.     AnsiPos TINTEGER005(INTEGER004, 1), TINTEGER005(INTEGER004, 2)
  386.     Color 112
  387.     Print STRING016
  388.     INTEGER006 = 1
  389.     While (((1 < 0) && (INTEGER006 >= TINTEGER005(INTEGER004, 0) - Len(STRING016))) || ((1 >= 0) && (INTEGER006 <= TINTEGER005(INTEGER004, 0) - Len(STRING016)))) Do
  390.         Print " "
  391.         INTEGER006 = INTEGER006 + 1
  392.     EndWhile
  393.     AnsiPos TINTEGER005(INTEGER004, 1), TINTEGER005(INTEGER004, 2)
  394.     Return
  395.     :LABEL005
  396.     STRING016 = ScrText(TINTEGER005(INTEGER004, 1), TINTEGER005(INTEGER004, 2), TINTEGER005(INTEGER004, 0), 0)
  397.     AnsiPos TINTEGER005(INTEGER004, 1), TINTEGER005(INTEGER004, 2)
  398.     Color 15
  399.     Print STRING016
  400.     INTEGER006 = 1
  401.     While (((1 < 0) && (INTEGER006 >= TINTEGER005(INTEGER004, 0) - Len(STRING016))) || ((1 >= 0) && (INTEGER006 <= TINTEGER005(INTEGER004, 0) - Len(STRING016)))) Do
  402.         Print " "
  403.         INTEGER006 = INTEGER006 + 1
  404.     EndWhile
  405.     Return
  406.     :LABEL006
  407.     AnsiPos TINTEGER005(INTEGER004, 1), TINTEGER005(INTEGER004, 2)
  408.     Color 15
  409.     STRING016 = ""
  410.     STRING016 = Mid(STRING016, 1, TINTEGER005(INTEGER004, 0))
  411.     Print STRING016
  412.     AnsiPos TINTEGER005(INTEGER004, 1) - 2, TINTEGER005(INTEGER004, 2)
  413.     Print "@X" + STRING010 + STRING010
  414.     STRING017 = CurColor()
  415.     InputStr "", TSTRING015(INTEGER004), STRING017, TINTEGER005(INTEGER004, 0), TSTRING013(INTEGER004), 8
  416.     AnsiPos TINTEGER005(INTEGER004, 1) - 2, TINTEGER005(INTEGER004, 2)
  417.     If (GrafMode() <> "G") Print "  "
  418.     Select Case (INTEGER004)
  419.         Case 6
  420.             INTEGER004 = 7
  421.             Gosub LABEL006
  422.         Case 7
  423.             INTEGER004 = 8
  424.             Gosub LABEL006
  425.         Case 9
  426.             INTEGER004 = 10
  427.             Gosub LABEL006
  428.         Case 10
  429.             INTEGER004 = 11
  430.             Gosub LABEL006
  431.     End Select
  432.     Return
  433.     :LABEL007
  434.     For INTEGER006 = 0 To INTEGER002
  435.         TSTRING015(INTEGER006) = ScrText(TINTEGER005(INTEGER006, 1), TINTEGER005(INTEGER006, 2), TINTEGER005(INTEGER006, 0), 0)
  436.         TSTRING015(INTEGER006) = Upper(TSTRING015(INTEGER006))
  437.     Next
  438.     If (Psa(3)) Then
  439.         U_Addr(0) = TSTRING015(0)
  440.         U_Addr(1) = TSTRING015(1)
  441.         U_Addr(2) = TSTRING015(2)
  442.         U_Addr(3) = TSTRING015(3)
  443.         U_Addr(4) = TSTRING015(4)
  444.         U_Addr(5) = TSTRING015(5)
  445.     Endif
  446.     U_City = TSTRING015(2)
  447.     U_BDPhone = "(" + TSTRING015(6) + ")" + TSTRING015(7) + "-" + TSTRING015(8)
  448.     U_HVPhone = "(" + TSTRING015(9) + ")" + TSTRING015(10) + "-" + TSTRING015(11)
  449.     If (Psa(1)) U_Alias = TSTRING015(12)
  450.     U_Pwd = TSTRING015(13)
  451.     If (Psa(2)) U_Ver = TSTRING015(14)
  452.     If (TSTRING015(15) == "Y") Then
  453.         TSTRING015(15) = 1
  454.     Else
  455.         TSTRING015(15) = 0
  456.     Endif
  457.     U_Expert = TSTRING015(15)
  458.     U_Trans = TSTRING015(16)
  459.     If (TSTRING015(17) == "Y") Then
  460.         TSTRING015(17) = 1
  461.     Else
  462.         TSTRING015(17) = 0
  463.     Endif
  464.     U_FSE = TSTRING015(17)
  465.     If (TSTRING015(18) == "Y") Then
  466.         TSTRING015(18) = 1
  467.     Else
  468.         TSTRING015(18) = 0
  469.     Endif
  470.     U_Cls = TSTRING015(18)
  471.     U_PageLen = TSTRING015(19)
  472.     If (TSTRING015(20) == "Y") Then
  473.         TSTRING015(20) = 1
  474.     Else
  475.         TSTRING015(20) = 0
  476.     Endif
  477.     U_Scroll = TSTRING015(20)
  478.     If (TSTRING015(21) == "Y") Then
  479.         TSTRING015(21) = 1
  480.     Else
  481.         TSTRING015(21) = 0
  482.     Endif
  483.     U_LongHDR = TSTRING015(21)
  484.     If (TSTRING015(22) == "Y") Then
  485.         TSTRING015(22) = 1
  486.     Else
  487.         TSTRING015(22) = 0
  488.     Endif
  489.     U_Def79 = TSTRING015(22)
  490.     If (TSTRING015(23) == "Y") Then
  491.         TSTRING015(23) = 1
  492.     Else
  493.         TSTRING015(23) = 0
  494.     Endif
  495.     U_FSEP = TSTRING015(23)
  496.     PutUser
  497.     Return
  498.     :LABEL008
  499.     PrintLn "@POFF@@CLS@@X0" + STRING011 + "▐@X" + STRING010 + STRING011 + "┌───────────────────────────────────────────────────────────────────────────@X" + STRING010 + "0┐@X08▌"
  500.     PrintLn "@X0" + STRING011 + "▐@X" + STRING010 + STRING011 + "│  @X" + STRING010 + STRING009 + "WRITE.PPE ■ COPYRIGHT 1994 ■ ROBERT BROWER ■ TOTAL ACCESS (905)568-5294  @X" + STRING010 + "0│@X08▌"
  501.     PrintLn "@X0" + STRING011 + "▐@X" + STRING010 + STRING011 + "└@X" + STRING010 + "0───────────────────────────────────────────────────────────────────────────┘@X08▌"
  502.     If (STRING012 == "") Then
  503.         STRING016 = "@X8E                         UNREGISTERED EVALUATION COPY"
  504.         PrintLn STRING016
  505.     Else
  506.         STRING016 = "REGISTERED TO: " + STRING012
  507.         Forward (80 - Len(STRING016)) / 2
  508.         PrintLn "@X0" + STRING009 + STRING016
  509.     Endif
  510.     PrintLn "@X0" + STRING011 + "▐@X" + STRING010 + STRING011 + "┌───────────────────────────────────────────────────────────────────────────@X" + STRING010 + "0┐@X08▌"
  511.     PrintLn "@X0" + STRING011 + "▐@X" + STRING010 + STRING011 + "│ Use your cursor or numerical keypad arrow keys to move the menu bar to    @X" + STRING010 + "0│@X08▌"
  512.     PrintLn "@X0" + STRING011 + "▐@X" + STRING010 + STRING011 + "│ the field you wish to edit. Press @X" + STRING010 + STRING011 + "ENTER @X" + STRING010 + STRING011 + "to edit the field. Enter the      @X" + STRING010 + "0│@X08▌"
  513.     PrintLn "@X0" + STRING011 + "▐@X" + STRING010 + STRING011 + "│ field information. Press @X" + STRING010 + STRING011 + "ENTER @X" + STRING010 + STRING011 + "when finished entering data. Press @X" + STRING010 + STRING011 + "S @X" + STRING010 + STRING011 + "to    @X" + STRING010 + "0│@X08▌"
  514.     PrintLn "@X0" + STRING011 + "▐@X" + STRING010 + STRING011 + "│ save the new information or press @X" + STRING010 + STRING011 + "Q @X" + STRING010 + STRING011 + "to exit to the system without saving  @X" + STRING010 + "0│@X08▌"
  515.     PrintLn "@X0" + STRING011 + "▐@X" + STRING010 + STRING011 + "│ your changes. Press @X" + STRING010 + STRING011 + "H @X" + STRING010 + STRING011 + "for this help screen.                               @X" + STRING010 + "0│@X08▌"
  516.     PrintLn "@X0" + STRING011 + "▐@X" + STRING010 + STRING011 + "│                                                                           @X" + STRING010 + "0│@X08▌"
  517.     PrintLn "@X0" + STRING011 + "▐@X" + STRING010 + STRING011 + "│    @X" + STRING010 + STRING009 + "KEY         FUNCTION DESCRIPTION             CURSOR or NUMERICAL       @X" + STRING010 + "0│@X08▌"
  518.     PrintLn "@X0" + STRING011 + "▐@X" + STRING010 + STRING011 + "│  @X" + STRING010 + "0┌──────@X" + STRING010 + STRING011 + "┐ @X" + STRING010 + "0┌─────────────────────────────@X" + STRING010 + STRING011 + "┐         @X" + STRING010 + STRING009 + "DIRECTION KEYS:         @X" + STRING010 + "0│@X08▌"
  519.     PrintLn "@X0" + STRING011 + "▐@X" + STRING010 + STRING011 + "│  @X" + STRING010 + "0│    @X" + STRING010 + STRING009 + " @X" + STRING010 + STRING011 + "│ @X" + STRING010 + "0│ @X" + STRING010 + STRING009 + "Move To Next Data Field     @X" + STRING010 + STRING011 + "│           @X" + STRING010 + "0┌─────────@X" + STRING010 + STRING011 + "┐           @X" + STRING010 + "0│@X08▌"
  520.     PrintLn "@X0" + STRING011 + "▐@X" + STRING010 + STRING011 + "│  @X" + STRING010 + "0│    @X" + STRING010 + STRING009 + " @X" + STRING010 + STRING011 + "│ @X" + STRING010 + "0│ @X" + STRING010 + STRING009 + "Move To Previous Data Field @X" + STRING010 + STRING011 + "│           @X" + STRING010 + "0│    @X" + STRING010 + STRING009 + "8    @X" + STRING010 + STRING011 + "│           @X" + STRING010 + "0│@X08▌"
  521.     PrintLn "@X0" + STRING011 + "▐@X" + STRING010 + STRING011 + "│  @X" + STRING010 + "0│    @X" + STRING010 + STRING009 + "S @X" + STRING010 + STRING011 + "│ @X" + STRING010 + "0│ @X" + STRING010 + STRING009 + "Save Changes And Exit       @X" + STRING010 + STRING011 + "│           @X" + STRING010 + "0│    @X" + STRING010 + STRING009 + "    @X" + STRING010 + STRING011 + "│           @X" + STRING010 + "0│@X08▌"
  522.     PrintLn "@X0" + STRING011 + "▐@X" + STRING010 + STRING011 + "│  @X" + STRING010 + "0│    @X" + STRING010 + STRING009 + "Q @X" + STRING010 + STRING011 + "│ @X" + STRING010 + "0│ @X" + STRING010 + STRING009 + "Quit Without Saving Changes @X" + STRING010 + STRING011 + "│           @X" + STRING010 + "0│  @X" + STRING010 + STRING009 + "4  6  @X" + STRING010 + STRING011 + "│           @X" + STRING010 + "0│@X08▌"
  523.     PrintLn "@X0" + STRING011 + "▐@X" + STRING010 + STRING011 + "│  @X" + STRING010 + "0│@X" + STRING010 + STRING009 + "ENTER @X" + STRING010 + STRING011 + "│ @X" + STRING010 + "0│ @X" + STRING010 + STRING009 + "Select Field For Editing    @X" + STRING010 + STRING011 + "│           @X" + STRING010 + "0│    @X" + STRING010 + STRING009 + "    @X" + STRING010 + STRING011 + "│           @X" + STRING010 + "0│@X08▌"
  524.     PrintLn "@X0" + STRING011 + "▐@X" + STRING010 + STRING011 + "│  @X" + STRING010 + "0│    @X" + STRING010 + STRING009 + "H @X" + STRING010 + STRING011 + "│ @X" + STRING010 + "0│ @X" + STRING010 + STRING009 + "View Help Screen            @X" + STRING010 + STRING011 + "│           @X" + STRING010 + "0│    @X" + STRING010 + STRING009 + "2    @X" + STRING010 + STRING011 + "│           @X" + STRING010 + "0│@X08▌"
  525.     PrintLn "@X0" + STRING011 + "▐@X" + STRING010 + STRING011 + "│  @X" + STRING010 + "0└@X" + STRING010 + STRING011 + "──────┘ @X" + STRING010 + "0└@X" + STRING010 + STRING011 + "─────────────────────────────┘           @X" + STRING010 + "0└@X" + STRING010 + STRING011 + "─────────┘           @X" + STRING010 + "0│@X08▌"
  526.     PrintLn "@X0" + STRING011 + "▐@X" + STRING010 + STRING011 + "│                                                                           @X" + STRING010 + "0│@X08▌"
  527.     PrintLn "@X0" + STRING011 + "▐@X" + STRING010 + STRING011 + "└@X" + STRING010 + "0───────────────────────────────────────────────────────────────────────────┘@X08▌"
  528.     Print "@WAIT@"
  529.     Goto LABEL001
  530.  
  531. ;------------------------------------------------------------------------------
  532. ;
  533. ; Usage report (before postprocessing)
  534. ;
  535. ; ■ Statements used :
  536. ;
  537. ;    1       End
  538. ;    4       Color 
  539. ;    65      Goto 
  540. ;    233     Let 
  541. ;    42      Print 
  542. ;    45      PrintLn 
  543. ;    48      If 
  544. ;    1       FOpen 
  545. ;    1       FClose 
  546. ;    5       FGet 
  547. ;    1       GetUser
  548. ;    1       PutUser
  549. ;    2       DefColor
  550. ;    4       Log 
  551. ;    1       InputStr 
  552. ;    15      Gosub 
  553. ;    6       Return
  554. ;    3       Inc 
  555. ;    3       Dec 
  556. ;    30      AnsiPos 
  557. ;    1       Forward 
  558. ;
  559. ;
  560. ; ■ Functions used :
  561. ;
  562. ;    1       /
  563. ;    702     +
  564. ;    11      -
  565. ;    41      ==
  566. ;    2       <>
  567. ;    5       <
  568. ;    4       <=
  569. ;    1       >
  570. ;    8       >=
  571. ;    34      !
  572. ;    8       &&
  573. ;    10      ||
  574. ;    9       Len(
  575. ;    5       Upper()
  576. ;    5       Mid()
  577. ;    4       Left()
  578. ;    12      Right()
  579. ;    2       Ferr()
  580. ;    1       Chr()
  581. ;    2       Random()
  582. ;    8       Strip()
  583. ;    1       Inkey()
  584. ;    1       Mask_Pwd()
  585. ;    4       Mask_Alpha()
  586. ;    7       Mask_Num()
  587. ;    3       Mask_AlNum()
  588. ;    1       Mask_Ascii()
  589. ;    1       PPEPath()
  590. ;    1       GrafMode()
  591. ;    3       Psa()
  592. ;    1       CurColor()
  593. ;    3       ScrText()
  594. ;
  595. ;------------------------------------------------------------------------------
  596. ;
  597. ; Analysis flags : WH
  598. ;
  599. ; W - Write user ■ 5
  600. ;     Program writes a user record. Although this may be normal for a
  601. ;     User Editor, it may also be a way to modify an account level.
  602. ;     ■ Search for : PUTUSER
  603. ;
  604. ; H - Read Password or Password History ■ 5
  605. ;     Program is reading the user's password or last password history
  606. ;     This may be ok for a password manager, but it is very suspect. Check!
  607. ;     ■ Search for : U_PWDHIST, U_PWD
  608. ;
  609. ;------------------------------------------------------------------------------
  610. ;
  611. ; Postprocessing report
  612. ;
  613. ;    2       For/Next
  614. ;    3       While/EndWhile
  615. ;    25      If/Then or If/Then/Else
  616. ;    1       Select Case
  617. ;
  618. ;------------------------------------------------------------------------------
  619. ;                 AEGiS Corp - Break the routines, code against the machines!
  620. ;------------------------------------------------------------------------------
  621.